// node什么？
// 运行环境， 核心就是让js可以运行在服务端，特点就是：事件驱动、非阻塞io （支持js所有语法，没有dom api， 内置模块，第三方模块）

// 什么是事件驱动 （node中也有一个事件环，类似浏览器的事件环，来处理node中的异步api操作）
// 这个事件环是node自己实现。 （处理一些异步的nodeapi）

// js 主线程是单线程的
// 比较适合i/o密集型 （非阻塞）， cpu密集 （压缩，合并、数据处理）

// 非阻塞 意味着，我调用了一个方法，不会立刻给我结果，但是我可以干别的事去了

// 非阻塞就是异步， 阻塞就是同步？

// 异步和同步事我们底层决定的 ， 阻塞和非阻塞针对的是调用方来决定的

// 调用方    被调用方
// 我   -》  话对方打电   异步非阻塞   同步阻塞   “异步阻塞”   “同步非阻塞”
// 常用的 异步非阻塞   同步阻塞

// js单线程的 好处节约内存，而且不会出现同时操作多个资源的问题，单线程比较简单， 适合 i/o密集型的
// 多线程的 可以同时处理多个任务，（锁的问题），多个线程来风资源，多线程可以利用多核cpu （多线程间的通信比较复杂）

// node的使用场景？
// 1.node来写服务，koa，express，eggjs nestjs
// 2.中间层，解决跨域 bff 为了前端服务的后端
// 3.聊天即时通信、爬虫
// 4.服务端渲染，react / vue
// 5.构建工具 webpack gulp vite rollup 前端工具链 、 脚手架...